package com.xiyu.service.vo.elder.register.baseVO;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import jakarta.validation.constraints.*;
import org.hibernate.validator.constraints.*;
import jakarta.validation.constraints.NotEmpty;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import static com.xiyu.service.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
import java.time.LocalDateTime;

/**
 * 入住登记 Base VO，提供给添加、修改、详细的子 VO 使用
 * 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
 */
@Data
public class ElderCheckInBase {

    @Schema(description = "入住编号")
    private String checkInNo;

    @Schema(description = "老人ID")
    private Long elderId;

    @Schema(description = "护理计划ID")
    private Long nursePlanId;

    @Schema(description = "餐饮套餐ID")
    private Long restaurantComboId;

    @Schema(description = "床位ID")
    private Long bedInfoId;

    @Schema(description = "入住开始时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime beginTime;

    @Schema(description = "入住预计结束时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime endTime;

    @Schema(description = "入住实交费用")
    private BigDecimal checkInFee;

    @Schema(description = "减免费用")
    private BigDecimal reductionFee;

    @Schema(description = "状态")
    @Range(max = 100000000, message = "状态最大不能超过100000000")
    private Integer status;

    @Schema(description = "缴费方式")
    @Range(max = 127, message = "缴费方式最大不能超过127")
    private Integer payType;

}
